<?php

class gpaciente{
	public $sql;
	public $idpersona;
	public $idpersona_contacto;

	function gpaciente(){
		$this->sql = new DmpSql();
	}

	function nuevo_paciente($apellidop_paciente,$apellidom_paciente,$nombre_paciente,$tipo_documento,$numero_documento,$estado_civil,$sexo,$fecha_nacimiento,$correo,$telefono1,$telefono2,$direccion,$apellido_contacto,$nombre_contacto,$telef_contacto,$direc_contacto,$comentario,$idubigeo,$tipo_sangre,$alergias,$observacion,$nume_fila_restriccion,$array_restriccion,$array_fecha_restriccion,$con_historia){
		//valido el bendito dni q no este en la bd con otra persona
         $error=0;
        if(trim($numero_documento)!=""){
            $consulta0="SELECT idpersona FROM persona WHERE documento_identificacion='".$numero_documento."'";
            $resultado0=$this->sql->consultar($consulta0,"sigh");
            $contar0=mysql_num_rows($resultado0);

        }else{
           $contar0=0;
        }
		//al no haber, tons procedo
		if($contar0==0){
			//=====================================================//
	    	$this->sql->consultar("START TRANSACTION","sigh");
	    	//=====================================================//
			//creo el objeto ayudante
			$ayudante = new Ayudante();

			//inserto nueva persona.///////////////////////////////////////////////////////////////////////////////
			$consulta="INSERT INTO persona
			SET idtipo_documento_identificacion='".$tipo_documento."',
			idestado_civil='".$estado_civil."',
			nombres='".$ayudante->caracter($nombre_paciente)."',
			apellido_p='".$ayudante->caracter($apellidop_paciente)."',
			apellido_m='".$ayudante->caracter($apellidom_paciente)."',
			sexo='".$ayudante->caracter($sexo)."',
			fecha_nacimiento='".$ayudante->FechaRevezMysql($fecha_nacimiento,"/")."',
			email='".$ayudante->caracter($correo)."',
			documento_identificacion='".trim($numero_documento)."',
			telefono1='".trim($telefono1)."',
			telefono2='".trim($telefono2)."',
			direccion='".$ayudante->caracter($direccion)."',
			comentario='".$ayudante->caracter($comentario)."',
			idubigeo='".$idubigeo."',
			idtipo_sangre='".$tipo_sangre."'";
			if($this->sql->consultar($consulta,"sigh")){

                //obtengo el ultimo id insertado//=====//
                $idpersona=$this->sql->idtabla(); //
                //=====================================//

                //inserto datos del contacto./////////////////////////////////////////////////////////////////
                $consulta2="INSERT INTO persona_contacto SET idpersona='".$idpersona."', apellidos='".$ayudante->caracter($apellido_contacto)."', nombres='".$ayudante->caracter($nombre_contacto)."', direccion='".$ayudante->caracter($direc_contacto)."', telefono='".$telef_contacto."'";
                $this->sql->consultar($consulta2,"sigh");

                //inserto alergias.////////////////////////////////////////////////////////////////////////////
                if(sizeof($alergias)>0){
                    $consulta3="INSERT INTO alergia(idpersona,idfamilia_atc,observacion) VALUES";
                    for($i=0;$i<sizeof($alergias);$i++){
                      $consulta3.="(".$idpersona.",".$alergias[$i].",'".$ayudante->caracter($observacion[$i])."'),";
                    }
                    $consulta3 = substr ($consulta3, 0, -1);//quito ultima coma
                    $consulta3.=";";//agrego ;
                    //echo "<br>".$consulta3;
                    if(!$this->sql->consultar($consulta3,"sigh")){
                        $error++;
                    }
			     }
                 //aca no entran a tallar las restricciones
                  if($con_historia==1){
                    $idhistoria_clinica=$ayudante->obtengoNuevoId("idhistoria_clinica","paciente","","sigh");
                    $consulta4="INSERT INTO paciente(idpaciente,idhistoria_clinica) VALUES (".$idpersona.",".$idhistoria_clinica.")";
                    //echo "<br>".$consulta4;
                    if(!$this->sql->consultar($consulta4,"sigh")){
                        $error++;
                    }
                    $mes=date('m');
                    $anio=date('Y');
                    $fecha_creacion=$anio."-".$mes."-01";
                    $consulta5="INSERT INTO movimiento_fisico_hc(idpaciente,fecha,es_error,ultimo,esta_aceptado) VALUES (".$idpersona.",'".$fecha_creacion."',0,1,1)";
                    //echo "<br>".$consulta5;
                    if(!$this->sql->consultar($consulta5,"sigh")){
                        $error++;
                    }
                 }
           }else{
               $error++;
           }
			//=====================================================//
	        if($error==0){
	        	$this->sql->consultar("COMMIT","sigh");
	        	$respuesta=$idpersona;
	        }else{
	        	$this->sql->consultar("ROLLBACK","sigh");
	        	$respuesta=0;
	        }
	        //=====================================================//
		}else{
			$respuesta=0;
		}
		return $respuesta;
	}

	function actualiza_paciente($apellidop_paciente,$apellidom_paciente,$nombre_paciente,$tipo_documento,$numero_documento,$estado_civil,$sexo,$fecha_nacimiento,$correo,$telefono1,$telefono2,$direccion,$apellido_contacto,$nombre_contacto,$telef_contacto,$direc_contacto,$idpaciente,$comentario,$idubigeo,$tipo_sangre,$alergias,$observacion,$tiempo,$hc,$nume_fila_restriccion,$array_restriccion,$array_fecha_restriccion,$check_genera_hc){
		//creo el objeto ayudante
		$ayudante = new Ayudante();

		$concurrencia=$ayudante->concurrencia($tiempo,$idpaciente,"idpersona","persona","sigh");

    	if($concurrencia==1){
    		//=====================================================//
	    	$this->sql->consultar("START TRANSACTION","sigh");
	    	//=====================================================//
			//actaulizo persona.///////////////////////////////////////////////////////////////////////////////////
			$consulta="UPDATE persona
			SET idtipo_documento_identificacion='".$tipo_documento."',
			idestado_civil='".$estado_civil."',
			nombres='".$ayudante->caracter($nombre_paciente)."',
			apellido_p='".$ayudante->caracter($apellidop_paciente)."',
			apellido_m='".$ayudante->caracter($apellidom_paciente)."',
			sexo='".$ayudante->caracter($sexo)."',
			fecha_nacimiento='".$ayudante->FechaRevezMysql($fecha_nacimiento,"/")."',
			email='".trim($correo)."',
			documento_identificacion='".$numero_documento."',
			telefono1='".$telefono1."',
			telefono2='".$telefono2."',
			direccion='".$ayudante->caracter($direccion)."',
			comentario='".$ayudante->caracter($comentario)."',
			idubigeo='".$idubigeo."',
	        idtipo_sangre='".$tipo_sangre."'
			WHERE idpersona='".$idpaciente."'";
			$this->sql->consultar($consulta,"sigh");
			//veo si tiene persona de contacto
			$consulta1="SELECT idpersona_contacto FROM persona_contacto WHERE idpersona='".$idpaciente."'";
			$resultado1=$this->sql->consultar($consulta1,"sigh");
			$contar1=mysql_num_rows($resultado1);

			if($contar1>0){//si ta
				//actualixo datos del contacto.///////////////////////////////////////////////////////////////
				$consulta2="UPDATE persona_contacto SET apellidos='".$ayudante->caracter($apellido_contacto)."', nombres='".$ayudante->caracter($nombre_contacto)."', direccion='".$ayudante->caracter($direc_contacto)."', telefono='".$telef_contacto."' WHERE idpersona='".$idpaciente."'";
		        $this->sql->consultar($consulta2,"sigh");
			}else{//no ta
				//inserto datos del contacto.//////////////////////////////////////////////////////////////////
				$consulta2="INSERT INTO persona_contacto SET idpersona='".$idpaciente."', apellidos='".$ayudante->caracter($apellido_contacto)."', nombres='".$ayudante->caracter($nombre_contacto)."', direccion='".$ayudante->caracter($direc_contacto)."', telefono='".$telef_contacto."'";
		        $this->sql->consultar($consulta2,"sigh");
			}
            if($check_genera_hc){//si existe este check tons significa que hay que crear el idhc
                $hc=$ayudante->obtengoNuevoId("idhistoria_clinica","paciente","","sigh");
            }else{
                $hc=trim($hc);
                if(empty($hc)){$hc='NULL';}
            }
            $sql_paciente="UPDATE paciente SET idhistoria_clinica=$hc WHERE idpaciente='$idpaciente'";
            if($this->sql->consultar($sql_paciente,"sigh")){
                if(sizeof($alergias)>0){
                    $consulta3="REPLACE INTO alergia(idpersona,idfamilia_atc,observacion) VALUES";
                    for($i=0;$i<sizeof($alergias);$i++){
                      $consulta3.="(".$idpaciente.",".$alergias[$i].",'".$ayudante->caracter($observacion[$i])."'),";
                    }
                    $consulta3 = substr ($consulta3, 0, -1);//quito ultima coma
                    $consulta3.=";";//agrego ;
                    //echo "<br>".$consulta3;
                    $this->sql->consultar($consulta3,"sigh");
                }
                //restricciones
                $sql_borrar="DELETE FROM restricciones_paciente WHERE idpaciente='".$idpaciente."'";
                if($this->sql->consultar($sql_borrar,"sigh")){
                    if(sizeof($array_fecha_restriccion)>0){
                        $sql_restriccion="INSERT INTO restricciones_paciente(idpaciente,fecha,restriccion) VALUES ";
                        for($j=0;$j<sizeof($array_fecha_restriccion);$j++){
                            if($array_fecha_restriccion[$j]==null || $array_fecha_restriccion[$j]==""){
                                $fecha_restriccion="null";
                            }else{
                                $fecha_restriccion="'".$ayudante->FechaRevezMysql($array_fecha_restriccion[$j],"/")."'";
                            }

                            $sql_restriccion.="(".$idpaciente.",".$fecha_restriccion.",'".$ayudante->caracter($array_restriccion[$j])."'),";
                        }
                        $sql_restriccion=substr($sql_restriccion,0,-1);//quito ultima coma
                        $sql_restriccion.=";";//agrego ;
                        //echo "<br>".$sql_restriccion;
                        $this->sql->consultar($sql_restriccion,"sigh");
                    }
                }
            }else{
                $idpaciente="";
            }
			//=====================================================//
	        if($idpaciente){
	        	$this->sql->consultar("COMMIT","sigh");
	        	$respuesta=$idpaciente;
	        }else{
	        	$this->sql->consultar("ROLLBACK","sigh");
	        	$respuesta=0;
	        }
	        //=====================================================//
		}else{
			$respuesta=0;
		}
		return $respuesta;
	}

	function eliminar_persona($idpaciente){
		//vemos q no este como usuario, personal o paciente (se supone q borras por error al momento de crearlo, tons no deberia tar en esas tablas)
		$consulta01="SELECT idusuario FROM usuario WHERE idusuario='".$idpaciente."'";
		$resultado01=$this->sql->consultar($consulta01,"sigh");
		$contar01=mysql_num_rows($resultado01);

		$consulta02="SELECT idpersonal FROM personal WHERE idpersonal='".$idpaciente."'";
		$resultado02=$this->sql->consultar($consulta02,"sigh");
		$contar02=mysql_num_rows($resultado02);

        $consulta021="SELECT idrestricciones_paciente FROM restricciones_paciente WHERE idpaciente='".$idpaciente."'";
        $resultado021=$this->sql->consultar($consulta021,"sigh");
		$contar021=mysql_num_rows($resultado021);

		$consulta03="SELECT idpaciente FROM paciente WHERE idpaciente='".$idpaciente."'";
		$resultado03=$this->sql->consultar($consulta03,"sigh");
		$contar03=mysql_num_rows($resultado03);

		$consulta04="SELECT idtitular FROM admision WHERE idtitular='".$idpaciente."'";
		$resultado04=$this->sql->consultar($consulta04,"sigh");
		$contar04=mysql_num_rows($resultado04);

		//comprobamos que no este en ninguna de las tablas q comprenden procedimientos
		if(($contar01==0)&&($contar02==0)&&($contar021==0)&&($contar03==0)&&($contar04==0)){
			//=====================================================//
	    	$this->sql->consultar("START TRANSACTION","sigh");
	    	//=====================================================//
			//persona contacto
			$consulta1="DELETE FROM persona_contacto WHERE idpersona='".$idpaciente."'";
			$this->sql->consultar($consulta1,"sigh");
			//alergias
			$consulta2="DELETE FROM alergia WHERE idpersona='".$idpaciente."'";
			$this->sql->consultar($consulta2,"sigh");
			//persona
			$consulta3="DELETE FROM persona WHERE idpersona='".$idpaciente."'";
			$this->sql->consultar($consulta3,"sigh");
			//si es ok retornamos 1
			//=====================================================//
	        if($idpaciente){
	        	$this->sql->consultar("COMMIT","sigh");
	        	$respuesta=1;
	        }else{
	        	$this->sql->consultar("ROLLBACK","sigh");
	        	$respuesta=0;
	        }
	        //=====================================================//
		}else{
			$respuesta=0;
		}
		return $respuesta;
	}
}
?>